package RICM.Repository.source;

import java.io.File;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class Chaine extends UnicastRemoteObject implements _Chaine{
	
	private List<Hotel> listeHotels;
	
	public Chaine(String fichier) throws RemoteException{
		listeHotels = new ArrayList<Hotel>();
		parser(fichier);
	}

	@Override
	public List<Hotel> get(String localisation) throws RemoteException {
		List<Hotel> l = new ArrayList<Hotel>();
		
		for(Hotel h : listeHotels){
			if(h.getLocalisation().equals(localisation))
				l.add(h);
		}
		return l;
	}
	
	private void parser(String fichier){
		SAXBuilder sxb = new SAXBuilder();
		Document document;
		Element racine;
		try {
			document = sxb.build(new File(fichier));
			racine = document.getRootElement();
			
			List listeHotelTemp = racine.getChildren("Hotel");

			Iterator i = listeHotelTemp.iterator();
			while(i.hasNext()){
				Element courant = (Element)i.next();
				Hotel h = new Hotel(courant.getAttributeValue("name"), courant.getAttributeValue("localisation"));
				listeHotels.add(h);
			}
		}catch(Exception e){
			System.err.println("Chaine : Impossible de charger le fichier : "+fichier);
		}
	}

}
